1. Field of the Invention
The present invention relates to the update of memory contents. More specifically, the present invention pertains to a method and apparatus for updating flash read only memory (ROM) contents in a fault-tolerant manner.
2. Related Art
Computer systems and other electronic devices have become integral tools that are used extensively to perform a wide variety of useful operations in modern society. Applications of computer systems can be found in virtually all fields and disciplines, including but not limited to business, industry, scientific research, education and entertainment. For instance, computer systems are used to analyze financial data, to control industrial machinery, to model chemical molecules, to deliver classroom presentations and to generate special effects for movies. Moreover, computer systems along with other electronic devices are finding new applications as a result of advances in hardware technology and rapid development in software technology. The growing affordability of computer systems and electronic devices together with the abundance of useful new applications have fueled strong demand for such systems and devices.
Included within this broad category of computers and electronic devices is the personal digital assistant (commonly referred to as a PDA). Specifically, as the components required to build a computer system have been greatly reduced in size, new categories of computer systems have emerged. One of these new categories of computer systems is the PDA. A PDA is a portable computer system which is small enough to be held conveniently and comfortably in the hand of its user. In particular, a popular size for the typical PDA approximates the size of a palm.
Since PDAs are such small devices, full-sized keyboards are generally not efficient input devices. For instance, PDAs using keyboards usually have keyboard devices that are so small that a user typically cannot touch-type on them. Many PDAs thus employ a stylus and a digitizer pad as an input system. The stylus and digitizer pad work well for PDAs because the arrangement allows a user to hold the PDA in one hand while writing with the stylus onto the digitizer pad with the other hand. A small on-screen keyboard image can also be used for data entry. By eliminating the need for a keyboard, PDAs are very portable and can be carried along by their users wherever they go, even when on extended travel.
Furthermore, the PDA is usually a battery-powered device that is typically used as an electronic organizer having the capability to store and display a wide range of information which can include numerous addresses and telephone numbers of business and personal acquaintances, financial information, daily appointments, along with various other personal information. As such, the PDA is able to consolidate a wide variety of information and make the information easily accessible by its user. Therefore, PDAs are very useful and have gained wide popularity.
Nevertheless, a problem exists with respect to the updating of certain memory contents in PDAs and other handheld devices and computer systems. More specifically, PDAs and portable systems typically store boot code and operating system (OS) code in a flash memory. Unfortunately, the existing process of updating such contents (e.g., boot code, OS code) in the flash ROM is inherently error-prone and may not be interrupted or else the ROM will be corrupted or unusable. As a result, users and developers of such devices often end up with incorrect or corrupted flash ROM contents if error occur during the update process. Once the flash ROM is loaded with incorrect or corrupted data, the device is rendered inoperable, and the only recourse is to mechanically disassemble the device, perform costly and laborious manual rework to remove and replace the corrupted flash ROM component, reassemble the device, and then perform testing to verify that the device is fully functional. This is highly inconvenient and renders the user experience less pleasant than it would otherwise have been. In the case of third party software developers who encounter this situation, such time-consuming and cumbersome retrofitting process can also result in significant delays in their product development cycle and/or missing milestones and customer commitments. Thus, it would be highly advantageous to provide a method and apparatus for updating flash ROM contents which minimizes the inconvenience and cost to users.
Additionally, a method and apparatus for updating flash ROM contents must not require complete revamping of existing computer systems. In other words, in implementing a viable method and apparatus for updating flash ROM contents, components that are well known in the art and are compatible with existing computer systems need to be used so that the cost of realizing the method and apparatus for updating flash ROM contents is low. By so doing, the need to incur costly expenditures for retrofitting existing computer systems or for building custom components is eliminated.